↳ Prolog
↳ PrologToPiTRSProof
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
CONF_IN_G(X) → U1_G(X, del2_in_ga(X, Z))
CONF_IN_G(X) → DEL2_IN_GA(X, Z)
DEL2_IN_GA(X, Y) → U4_GA(X, Y, del_in_aga(U, X, Z))
DEL2_IN_GA(X, Y) → DEL_IN_AGA(U, X, Z)
DEL_IN_AGA(X, cons(H, T), cons(H, T1)) → U6_AGA(X, H, T, T1, del_in_aga(X, T, T1))
DEL_IN_AGA(X, cons(H, T), cons(H, T1)) → DEL_IN_AGA(X, T, T1)
U4_GA(X, Y, del_out_aga(U, X, Z)) → U5_GA(X, Y, del_in_aga(V, Z, Y))
U4_GA(X, Y, del_out_aga(U, X, Z)) → DEL_IN_AGA(V, Z, Y)
U1_G(X, del2_out_ga(X, Z)) → U2_G(X, del_in_aag(U, Y, Z))
U1_G(X, del2_out_ga(X, Z)) → DEL_IN_AAG(U, Y, Z)
DEL_IN_AAG(X, cons(H, T), cons(H, T1)) → U6_AAG(X, H, T, T1, del_in_aag(X, T, T1))
DEL_IN_AAG(X, cons(H, T), cons(H, T1)) → DEL_IN_AAG(X, T, T1)
U2_G(X, del_out_aag(U, Y, Z)) → U3_G(X, conf_in_g(Y))
U2_G(X, del_out_aag(U, Y, Z)) → CONF_IN_G(Y)
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
CONF_IN_G(X) → U1_G(X, del2_in_ga(X, Z))
CONF_IN_G(X) → DEL2_IN_GA(X, Z)
DEL2_IN_GA(X, Y) → U4_GA(X, Y, del_in_aga(U, X, Z))
DEL2_IN_GA(X, Y) → DEL_IN_AGA(U, X, Z)
DEL_IN_AGA(X, cons(H, T), cons(H, T1)) → U6_AGA(X, H, T, T1, del_in_aga(X, T, T1))
DEL_IN_AGA(X, cons(H, T), cons(H, T1)) → DEL_IN_AGA(X, T, T1)
U4_GA(X, Y, del_out_aga(U, X, Z)) → U5_GA(X, Y, del_in_aga(V, Z, Y))
U4_GA(X, Y, del_out_aga(U, X, Z)) → DEL_IN_AGA(V, Z, Y)
U1_G(X, del2_out_ga(X, Z)) → U2_G(X, del_in_aag(U, Y, Z))
U1_G(X, del2_out_ga(X, Z)) → DEL_IN_AAG(U, Y, Z)
DEL_IN_AAG(X, cons(H, T), cons(H, T1)) → U6_AAG(X, H, T, T1, del_in_aag(X, T, T1))
DEL_IN_AAG(X, cons(H, T), cons(H, T1)) → DEL_IN_AAG(X, T, T1)
U2_G(X, del_out_aag(U, Y, Z)) → U3_G(X, conf_in_g(Y))
U2_G(X, del_out_aag(U, Y, Z)) → CONF_IN_G(Y)
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
DEL_IN_AAG(X, cons(H, T), cons(H, T1)) → DEL_IN_AAG(X, T, T1)
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
DEL_IN_AAG(X, cons(H, T), cons(H, T1)) → DEL_IN_AAG(X, T, T1)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
DEL_IN_AAG(cons(T1)) → DEL_IN_AAG(T1)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
DEL_IN_AGA(X, cons(H, T), cons(H, T1)) → DEL_IN_AGA(X, T, T1)
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
DEL_IN_AGA(X, cons(H, T), cons(H, T1)) → DEL_IN_AGA(X, T, T1)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
DEL_IN_AGA(cons(T)) → DEL_IN_AGA(T)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U2_G(X, del_out_aag(U, Y, Z)) → CONF_IN_G(Y)
CONF_IN_G(X) → U1_G(X, del2_in_ga(X, Z))
U1_G(X, del2_out_ga(X, Z)) → U2_G(X, del_in_aag(U, Y, Z))
conf_in_g(X) → U1_g(X, del2_in_ga(X, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U1_g(X, del2_out_ga(X, Z)) → U2_g(X, del_in_aag(U, Y, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
U2_g(X, del_out_aag(U, Y, Z)) → U3_g(X, conf_in_g(Y))
U3_g(X, conf_out_g(Y)) → conf_out_g(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U2_G(X, del_out_aag(U, Y, Z)) → CONF_IN_G(Y)
CONF_IN_G(X) → U1_G(X, del2_in_ga(X, Z))
U1_G(X, del2_out_ga(X, Z)) → U2_G(X, del_in_aag(U, Y, Z))
del2_in_ga(X, Y) → U4_ga(X, Y, del_in_aga(U, X, Z))
del_in_aag(X, cons(X, T), T) → del_out_aag(X, cons(X, T), T)
del_in_aag(X, cons(H, T), cons(H, T1)) → U6_aag(X, H, T, T1, del_in_aag(X, T, T1))
U4_ga(X, Y, del_out_aga(U, X, Z)) → U5_ga(X, Y, del_in_aga(V, Z, Y))
U6_aag(X, H, T, T1, del_out_aag(X, T, T1)) → del_out_aag(X, cons(H, T), cons(H, T1))
del_in_aga(X, cons(X, T), T) → del_out_aga(X, cons(X, T), T)
del_in_aga(X, cons(H, T), cons(H, T1)) → U6_aga(X, H, T, T1, del_in_aga(X, T, T1))
U5_ga(X, Y, del_out_aga(V, Z, Y)) → del2_out_ga(X, Y)
U6_aga(X, H, T, T1, del_out_aga(X, T, T1)) → del_out_aga(X, cons(H, T), cons(H, T1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
CONF_IN_G(X) → U1_G(del2_in_ga(X))
U2_G(del_out_aag(Y)) → CONF_IN_G(Y)
U1_G(del2_out_ga(Z)) → U2_G(del_in_aag(Z))
del2_in_ga(X) → U4_ga(del_in_aga(X))
del_in_aag(T) → del_out_aag(cons(T))
del_in_aag(cons(T1)) → U6_aag(del_in_aag(T1))
U4_ga(del_out_aga(Z)) → U5_ga(del_in_aga(Z))
U6_aag(del_out_aag(T)) → del_out_aag(cons(T))
del_in_aga(cons(T)) → del_out_aga(T)
del_in_aga(cons(T)) → U6_aga(del_in_aga(T))
U5_ga(del_out_aga(Y)) → del2_out_ga(Y)
U6_aga(del_out_aga(T1)) → del_out_aga(cons(T1))
del2_in_ga(x0)
del_in_aag(x0)
U4_ga(x0)
U6_aag(x0)
del_in_aga(x0)
U5_ga(x0)
U6_aga(x0)
U4_ga(del_out_aga(Z)) → U5_ga(del_in_aga(Z))
POL(CONF_IN_G(x1)) = 2·x1
POL(U1_G(x1)) = 2·x1
POL(U2_G(x1)) = x1
POL(U4_ga(x1)) = x1
POL(U5_ga(x1)) = x1
POL(U6_aag(x1)) = 2 + x1
POL(U6_aga(x1)) = 1 + x1
POL(cons(x1)) = 1 + x1
POL(del2_in_ga(x1)) = x1
POL(del2_out_ga(x1)) = 1 + x1
POL(del_in_aag(x1)) = 2 + 2·x1
POL(del_in_aga(x1)) = x1
POL(del_out_aag(x1)) = 2·x1
POL(del_out_aga(x1)) = 1 + x1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
CONF_IN_G(X) → U1_G(del2_in_ga(X))
U2_G(del_out_aag(Y)) → CONF_IN_G(Y)
U1_G(del2_out_ga(Z)) → U2_G(del_in_aag(Z))
del2_in_ga(X) → U4_ga(del_in_aga(X))
del_in_aag(T) → del_out_aag(cons(T))
del_in_aag(cons(T1)) → U6_aag(del_in_aag(T1))
U6_aag(del_out_aag(T)) → del_out_aag(cons(T))
del_in_aga(cons(T)) → del_out_aga(T)
del_in_aga(cons(T)) → U6_aga(del_in_aga(T))
U5_ga(del_out_aga(Y)) → del2_out_ga(Y)
U6_aga(del_out_aga(T1)) → del_out_aga(cons(T1))
del2_in_ga(x0)
del_in_aag(x0)
U4_ga(x0)
U6_aag(x0)
del_in_aga(x0)
U5_ga(x0)
U6_aga(x0)